package com.extraxue.abstractFactory;


// 抽象工厂
public class Main {

    public static void main(String[] args) {

        /**
         * 生产现在的东西,这样引用的话，如果需要改成生产魔法世界的东西的时候
         * 只需要改成
         * AbstractFactory f = new MagicFactory();
         * 即可
         *
         * 这里不用interface 是语义问题
         * 形容词用Interface去implements，名词用abstract class去extends
         */

        AbstractFactory f = new ModernFactory();

        Vehicle c = f.createVehicle();
        c.go();

        Weapon w = f.createWeapon();
        w.shoot();

        Food food = f.createFood();
        food.printName();

    }

}
